diff --git a/tools/data.tex b/tools/data.tex new file mode 100644 index 00000000..5ae5fd62 --- /dev/null +++ b/tools/data.tex @@ -0,0 +1,101 @@ +\begin{tabular} + \multicolumn{1}{r}{Molecule} & \multicolumn{1}{r}{State} & S/T & \multicolumn{1}{r}{V/R} & \multicolumn{1}{r}{Type} & T1 [CC3/AVTZ] & \multicolumn{1}{r}{f[CC3/AVTZ]} & TBE/AVTZ & \multicolumn{1}{r}{Method} & \multicolumn{1}{r}{Safe ?} & & CIS(D) & CC2 & CCSD(2) & \multicolumn{1}{r}{STEOM-CCSD} & CCSD & CCSDR(3) & CCCSDT-3 & CC3 & SOS-ADC(2) [TM] & SOS-CC2 & SCS-CC2 & SOS-ADC(2) [Q-Chem] & ADC(2) & ADC(3) & ADC(2.5) & & CIS(D) & CC2 & CCSD(2) & STEOM-CCSD & CCSD & CCSDR(3) & CCCSDT-3 & CC3 & SOS-ADC(2) [TM] & SOS-CC2 & SCS-CC2 & SOS-ADC(2) [Q-Chem] & ADC(2) & ADC(3) & ADC(2.5) & & CIS(D) & CC2 & CCSD(2) & STEOM-CCSD & CCSD & CCSDR(3) & CCCSDT-3 & CC3 & SOS-ADC(2) [TM] & SOS-CC2 & SCS-CC2 & SOS-ADC(2) [Q-Chem] & ADC(2) & ADC(3) & ADC(2.5) \\ + Aza-naphthalene & ^1B_{3g} & 1 & V & npi & \multicolumn{1}{l}{} & & 3,14 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 3,36 & 3,00 & 3,76 & & 3,41 & 3,24 & 3,21 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,31 & 3,05 & 3,24 & 3,15 & & 0,22 & -0,14 & 0,62 & & 0,27 & 0,10 & 0,07 & & & & & 0,17 & -0,09 & 0,10 & 0,00 & & 0,22 & 0,14 & 0,62 & & 0,27 & 0,10 & 0,07 & & & & & 0,17 & 0,09 & 0,10 & 0,00 \\ + & $^1B_{2u}$ & 1 & V & ppi & \multicolumn{1}{l}{} & & 4,28 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,46 & 4,38 & 4,96 & & 4,45 & 4,38 & 4,32 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,09 & 4,41 & 4,08 & 4,25 & & 0,18 & 0,10 & 0,68 & & 0,17 & 0,10 & 0,04 & & & & & -0,19 & 0,13 & -0,20 & -0,04 & & 0,18 & 0,10 & 0,68 & & 0,17 & 0,10 & 0,04 & & & & & 0,19 & 0,13 & 0,20 & 0,04 \\ + & $^1B_{1u}$ & 1 & V & npi & \multicolumn{1}{l}{} & & 4,34 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,61 & 4,35 & 4,83 & & 4,55 & 4,44 & 4,41 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,44 & 4,36 & 4,35 & 4,36 & & 0,27 & 0,01 & 0,49 & & 0,21 & 0,10 & 0,07 & & & & & 0,10 & 0,02 & 0,01 & 0,02 & & 0,27 & 0,01 & 0,49 & & 0,21 & 0,10 & 0,07 & & & & & 0,10 & 0,02 & 0,01 & 0,02 \\ + & $^1B_{2g}$   & 1 & V & npi & \multicolumn{1}{l}{} & & 4,55 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,76 & 4,44 & 5,13 & & 4,85 & 4,65 & 4,65 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,65 & 4,46 & 4,78 & 4,62 & & 0,21 & -0,11 & 0,58 & & 0,30 & 0,10 & 0,10 & & & & & 0,10 & -0,09 & 0,23 & 0,07 & & 0,21 & 0,11 & 0,58 & & 0,30 & 0,10 & 0,10 & & & & & 0,10 & 0,09 & 0,23 & 0,07 \\ + & $^1B_{2g}$   & 1 & V & npi & \multicolumn{1}{l}{} & & 4,89 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 5,13 & 4,84 & 5,64 & & 5,33 & 5,06 & 5,02 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,14 & 4,87 & 5,16 & 5,02 & & 0,24 & -0,05 & 0,75 & & 0,44 & 0,17 & 0,13 & & & & & 0,25 & -0,02 & 0,27 & 0,13 & & 0,24 & 0,05 & 0,75 & & 0,44 & 0,17 & 0,13 & & & & & 0,25 & 0,02 & 0,27 & 0,13 \\ + & $^1B_{1u}$ & 1 & V & npi & \multicolumn{1}{l}{} & & 5,24 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & N & & 4,87 & 5,03 & 6,25 & & 5,89 & 5,40 & 5,40 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,64 & 5,11 & 5,75 & 5,43 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_u$ & 1 & V & npi & \multicolumn{1}{l}{} & & 5,34 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 5,86 & 5,49 & 5,91 & & 5,68 & 5,52 & 5,45 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,53 & 5,48 & 5,33 & 5,41 & & 0,52 & 0,15 & 0,57 & & 0,34 & 0,18 & 0,11 & & & & & 0,19 & 0,14 & -0,01 & 0,07 & & 0,52 & 0,15 & 0,57 & & 0,34 & 0,18 & 0,11 & & & & & 0,19 & 0,14 & 0,01 & 0,07 \\ + & $^1B_{3u}$ & 1 & V & ppi & \multicolumn{1}{l}{} & & 5,68 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & N & & 6,08 & 5,66 & 6,26 & & 5,88 & 5,76 & 5,70 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,50 & 5,64 & 5,51 & 5,58 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_g$ & 1 & V & ppi & \multicolumn{1}{l}{} & & 5,80 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 5,93 & 5,92 & 6,54 & & 6,08 & 5,94 & 5,90 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,64 & 5,96 & 5,67 & 5,82 & & 0,13 & 0,12 & 0,74 & & 0,28 & 0,14 & 0,10 & & & & & -0,16 & 0,16 & -0,13 & 0,01 & & 0,13 & 0,12 & 0,74 & & 0,28 & 0,14 & 0,10 & & & & & 0,16 & 0,16 & 0,13 & 0,01 \\ + & $^1A_u$ & 1 & V & npi & \multicolumn{1}{l}{} & & 5,92 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 5,90 & 5,83 & 6,64 & & 6,37 & 6,06 & 6,06 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 6,12 & 5,84 & 6,26 & 6,05 & & -0,02 & -0,09 & 0,72 & & 0,45 & 0,14 & 0,14 & & & & & 0,20 & -0,08 & 0,34 & 0,13 & & 0,02 & 0,09 & 0,72 & & 0,45 & 0,14 & 0,14 & & & & & 0,20 & 0,08 & 0,34 & 0,13 \\ + & $^1A_g$ & 1 & R & n3s & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & ?? & & 6,11 & 5,96 & 6,98 & & 6,71 & 6,57 & 6,61 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 6,68 & 6,07 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_{3g}$   & 3 & V & npi & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & CC3/AVTZ & N & & 3,13 & 2,73 & 3,36 & & 3,04 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,04 & 2,76 & 2,88 & 2,82 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_{2u}$ & 3 & V & ppi & \multicolumn{1}{l}{} & & 3,67 & CC3/AVTZ & N & & 3,99 & 3,83 & 4,16 & & 3,70 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,67 & 3,84 & 3,30 & 3,57 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_{3u}$ & 3 & V & ppi & \multicolumn{1}{l}{} & & 3,75 & CC3/AVTZ & N & & 4,19 & 3,98 & 4,15 & & 3,59 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,80 & 3,97 & 3,44 & 3,71 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_{1u}$ & 3 & V & npi & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & CC3/AVTZ & N & & 4,03 & 3,79 & 4,15 & & 3,89 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,92 & 3,79 & 3,71 & 3,75 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_{2g}$ & 3 & V & npi & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & CC3/AVTZ & N & & 4,58 & 4,33 & 4,80 & & 4,55 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,49 & 4,34 & 4,42 & 4,38 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_{2g}$ & 3 & V & npi & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & CC3/AVTZ & N & & 4,80 & 4,48 & 5,29 & & 4,98 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,85 & 4,52 & 4,96 & 4,74 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_{3u}$ & 3 & V & ppi & \multicolumn{1}{l}{} & & 4,75 & CC3/AVTZ & N & & 5,06 & 5,00 & 5,29 & & 4,83 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,75 & 4,98 & 4,44 & 4,71 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3A_u$ & 3 & V & npi & \multicolumn{1}{l}{} & & 4,87 & CC3/AVTZ & N & & 5,20 & 4,94 & 5,22 & & 5,01 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,02 & 4,93 & 4,82 & 4,88 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + Benzoquinone & ^1B_{1g}   & 1 & V & npi & 85,3 & & 2,82 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 3,02 & 2,82 & 3,24 & \multicolumn{1}{r}{2,92} & 3,13 & 2,94 & 2,89 & 2,79 & 3,19 & 3,30 & 3,15 & 2,95 & 2,72 & 2,91 & 2,82 & & 0,20 & 0,00 & 0,42 & 0,10 & 0,31 & 0,12 & 0,07 & -0,03 & 0,37 & 0,48 & 0,33 & 0,13 & -0,10 & 0,09 & -0,01 & & 0,20 & 0,00 & 0,42 & 0,10 & 0,31 & 0,12 & 0,07 & 0,03 & 0,37 & 0,48 & 0,33 & 0,13 & 0,10 & 0,09 & 0,01 \\ + & $^1A_u$ & 1 & V & npi & 84,1 & & 2,96 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 3,18 & 2,98 & 3,40 & \multicolumn{1}{r}{3,08} & 3,30 & 3,10 & 3,04 & 2,94 & 3,31 & 3,45 & 3,30 & 3,06 & 2,84 & 3,12 & 2,98 & & 0,22 & 0,02 & 0,44 & 0,12 & 0,34 & 0,14 & 0,08 & -0,02 & 0,35 & 0,49 & 0,34 & 0,10 & -0,12 & 0,16 & 0,02 & & 0,22 & 0,02 & 0,44 & 0,12 & 0,34 & 0,14 & 0,08 & 0,02 & 0,35 & 0,49 & 0,34 & 0,10 & 0,12 & 0,16 & 0,02 \\ + & $^1A_g$ & 1 & V & dou & 0,0 & & 4,57 & NEVPT2/AVTZ & N & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 6,85 & 6,02 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{3g}$   & 1 & V & ppi & 88,6 & & 4,58 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & N & & 4,89 & 4,63 & 5,08 & \multicolumn{1}{r}{4,62} & 4,87 & 4,64 & 4,62 & 4,53 & 5,08 & 5,03 & 4,90 & 4,88 & 4,73 & 4,29 & 4,51 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{1u}$   & 1 & V & ppi & 88,4 & \multicolumn{1}{r}{0,471} & 5,62 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & N & & 5,59 & 5,57 & 5,96 & & 5,87 & 5,62 & 5,65 & 5,58 & 5,82 & 5,96 & 5,83 & 5,59 & 5,42 & 5,45 & 5,44 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{3u}$   & 1 & V & npi & 79,8 & \multicolumn{1}{r}{0,001} & 5,79 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & N & & 6,80 & 5,60 & 6,44 & \multicolumn{1}{r}{6,22} & 6,44 & 6,00 & 5,96 & 5,75 & 6,44 & 6,50 & 6,20 & 6,17 & 5,57 & 5,58 & 5,58 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{2g}$   & 1 & V & npi & 76,2 & & 5,95 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 6,55 & 5,76 & 6,75 & & 6,75 & 6,25 & 6,18 & 5,94 & 6,64 & 6,72 & 6,41 & 6,35 & 5,71 & 5,53 & 5,62 & & 0,60 & -0,19 & 0,80 & & 0,80 & 0,30 & 0,23 & -0,01 & 0,69 & 0,77 & 0,46 & 0,40 & -0,24 & -0,42 & -0,33 & & 0,60 & 0,19 & 0,80 & & 0,80 & 0,30 & 0,23 & 0,01 & 0,69 & 0,77 & 0,46 & 0,40 & 0,24 & 0,42 & 0,33 \\ + & $^1A_u & $1 & V & npi & 74,8 & & 6,35 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & N & & 6,78 & 6,32 & 7,27 & & 7,17 & 6,65 & 6,55 & 6,27 & 7,08 & 7,14 & 6,86 & 6,80 & 6,27 & 6,06 & 6,17 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{1g}$   & 1 & V & npi & 83,5 & & 6,38 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & N & & 6,74 & 6,37 & 6,83 & & 6,73 & 6,50 & 6,48 & 6,34 & 6,92 & 6,96 & 6,77 & 6,67 & 6,29 & 6,22 & 6,26 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{2g}$   & 1 & V & npi & 86,6 & & 7,22 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 7,23 & 7,24 & 7,72 & & 7,59 & 7,32 & 7,31 & 7,20 & 7,74 & 7,81 & 7,62 & 7,50 & 7,20 & 7,12 & 7,16 & & 0,01 & 0,02 & 0,50 & & 0,37 & 0,10 & 0,09 & -0,02 & 0,52 & 0,59 & 0,40 & 0,28 & -0,02 & -0,10 & -0,06 & & 0,01 & 0,02 & 0,50 & & 0,37 & 0,10 & 0,09 & 0,02 & 0,52 & 0,59 & 0,40 & 0,28 & 0,02 & 0,10 & 0,06 \\ + & $^3B_{1g}$   & 3 & V & npi & 96,0 & & 2,58 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 2,74 & 2,51 & 2,90 & \multicolumn{1}{r}{2,64} & 2,78 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,56 & 2,93 & 3,03 & 2,86 & 2,71 & 2,42 & 2,63 & 2,53 & & 0,16 & -0,07 & 0,32 & 0,06 & 0,20 & & & -0,02 & 0,35 & 0,45 & 0,28 & 0,13 & -0,16 & 0,05 & -0,06 & & 0,16 & 0,07 & 0,32 & 0,06 & 0,20 & & & 0,02 & 0,35 & 0,45 & 0,28 & 0,13 & 0,16 & 0,05 & 0,06 \\ + & $^3A_u$ & 3 & V & npi & 95,6 & & 2,72 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 2,91 & 2,68 & 3,05 & \multicolumn{1}{r}{2,81} & 2,94 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,71 & 3,06 & 3,19 & 3,02 & 2,83 & 2,55 & 2,85 & 2,70 & & 0,19 & -0,04 & 0,33 & 0,09 & 0,22 & & & -0,01 & 0,34 & 0,47 & 0,30 & 0,11 & -0,17 & 0,13 & -0,02 & & 0,19 & 0,04 & 0,33 & 0,09 & 0,22 & & & 0,01 & 0,34 & 0,47 & 0,30 & 0,11 & 0,17 & 0,13 & 0,02 \\ + & $^3B_{1u}$   & 3 & V & ppi & 97,7 & & 3,12 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 3,47 & 3,30 & 3,39 & \multicolumn{1}{r}{2,88} & 3,09 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,14 & 3,37 & 3,39 & 3,36 & 3,22 & 3,26 & 2,84 & 3,05 & & 0,35 & 0,18 & 0,27 & -0,24 & -0,03 & & & 0,02 & 0,25 & 0,27 & 0,24 & 0,10 & 0,14 & -0,28 & -0,07 & & 0,35 & 0,18 & 0,27 & 0,24 & 0,03 & & & 0,02 & 0,25 & 0,27 & 0,24 & 0,10 & 0,14 & 0,28 & 0,07 \\ + & $^3B_{3g}$   & 3 & V & ppi & 97,9 & & 3,46 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 3,72 & 3,55 & 3,66 & \multicolumn{1}{r}{3,24} & 3,46 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,44 & 3,74 & 3,73 & 3,68 & 3,60 & 3,57 & 3,12 & 3,35 & & 0,26 & 0,09 & 0,20 & -0,22 & 0,00 & & & -0,02 & 0,28 & 0,27 & 0,22 & 0,14 & 0,11 & -0,34 & -0,12 & & 0,26 & 0,09 & 0,20 & 0,22 & 0,00 & & & 0,02 & 0,28 & 0,27 & 0,22 & 0,14 & 0,11 & 0,34 & 0,12 \\ + Cyclopentadienone & ^1A_2 & 1 & V & npi & 88,5 & & 2,94 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 2,96 & 2,86 & 3,15 & \multicolumn{1}{r}{2,92} & 3,12 & 2,99 & 2,99 & 2,94 & 3,14 & 3,27 & 3,14 & 2,91 & 2,71 & 3,01 & 2,86 & & 0,02 & -0,08 & 0,21 & -0,02 & 0,18 & 0,05 & 0,05 & 0,00 & 0,20 & 0,33 & 0,20 & -0,03 & -0,23 & 0,07 & -0,08 & & 0,02 & 0,08 & 0,21 & 0,02 & 0,18 & 0,05 & 0,05 & 0,00 & 0,20 & 0,33 & 0,20 & 0,03 & 0,23 & 0,07 & 0,08 \\ + & $^1B_2$ & 1 & V & ppi & 91,2 & \multicolumn{1}{r}{0,004} & 3,58 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 3,74 & 3,58 & 3,87 & \multicolumn{1}{r}{3,55} & 3,77 & 3,60 & 3,59 & 3,54 & 3,94 & 3,93 & 3,81 & 3,76 & 3,63 & 3,28 & 3,46 & & 0,16 & 0,00 & 0,29 & -0,03 & 0,19 & 0,02 & 0,01 & -0,04 & 0,36 & 0,35 & 0,23 & 0,18 & 0,05 & -0,30 & -0,13 & & 0,16 & 0,00 & 0,29 & 0,03 & 0,19 & 0,02 & 0,01 & 0,04 & 0,36 & 0,35 & 0,23 & 0,18 & 0,05 & 0,30 & 0,13 \\ + & $^1B_1$ & 1 & V & dou & 3,1 & \multicolumn{1}{r}{0,000} & 5,02 & NEVPT2/AVTZ & N & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 6,12 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,37 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_1$ & 1 & V & dou & 49,9 & \multicolumn{1}{r}{0,131} & 6,00 & NEVPT2/AVTZ & N & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 7,10 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,59 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_1$ & 1 & V & ppi & 73,6 & \multicolumn{1}{r}{0,090} & 6,09 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & N & & 6,58 & 6,50 & 6,72 & & 6,68 & 6,40 & 6,33 & 6,21 & 6,78 & 6,87 & 6,74 & 6,56 & 6,42 & 6,50 & 6,46 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3B_2$ & 3 & V & ppi & 98,0 & & 2,29 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 2,50 & 2,34 & 2,43 & \multicolumn{1}{r}{2,11} & 2,28 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,28 & 2,57 & 2,57 & 2,50 & 2,44 & 2,36 & 1,97 & 2,17 & & 0,21 & 0,05 & 0,14 & -0,18 & -0,01 & & & -0,01 & 0,28 & 0,28 & 0,21 & 0,15 & 0,07 & -0,32 & -0,13 & & 0,21 & 0,05 & 0,14 & 0,18 & 0,01 & & & 0,01 & 0,28 & 0,28 & 0,21 & 0,15 & 0,07 & 0,32 & 0,13 \\ + & $^3A_2$ & 3 & V & npi & 96,9 & & 2,65 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 2,67 & 2,52 & 2,80 & \multicolumn{1}{r}{2,57} & 2,75 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,64 & 2,87 & 2,99 & 2,83 & 2,66 & 2,39 & 2,67 & 2,53 & & 0,02 & -0,13 & 0,15 & -0,08 & 0,10 & & & -0,01 & 0,22 & 0,34 & 0,18 & 0,01 & -0,26 & 0,02 & -0,12 & & 0,02 & 0,13 & 0,15 & 0,08 & 0,10 & & & 0,01 & 0,22 & 0,34 & 0,18 & 0,01 & 0,26 & 0,02 & 0,12 \\ + & $^3A_1$ & 3 & V & ppi & 98,2 & & 4,19 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 4,42 & 4,31 & 4,31 & \multicolumn{1}{r}{3,95} & 4,13 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,19 & 4,28 & 4,31 & 4,31 & 4,16 & 4,27 & 3,89 & 4,08 & & 0,23 & 0,12 & 0,12 & -0,24 & -0,06 & & & 0,00 & 0,09 & 0,12 & 0,12 & -0,03 & 0,08 & -0,30 & -0,11 & & 0,23 & 0,12 & 0,12 & 0,24 & 0,06 & & & 0,00 & 0,09 & 0,12 & 0,12 & 0,03 & 0,08 & 0,30 & 0,11 \\ + & $^3B_1$ & 3 & V & dou & 10,0 & & 4,91 & NEVPT2/AVTZ & N & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 6,05 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,30 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + Cyclopentadienethione & ^1A_2 & 1 & V & npi & 87,2 & & 1,70 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 1,71 & 1,75 & 1,68 & \multicolumn{1}{r}{1,69} & 1,84 & 1,73 & 1,75 & 1,71 & 1,85 & 1,96 & 1,89 & 1,68 & 1,62 & 1,56 & 1,59 & & 0,01 & 0,05 & -0,02 & -0,01 & 0,14 & 0,03 & 0,05 & 0,01 & 0,15 & 0,26 & 0,19 & -0,02 & -0,08 & -0,14 & -0,11 & & 0,01 & 0,05 & 0,02 & 0,01 & 0,14 & 0,03 & 0,05 & 0,01 & 0,15 & 0,26 & 0,19 & 0,02 & 0,08 & 0,14 & 0,11 \\ + & $^1B_2$ & 1 & V & ppi & 85,3 & \multicolumn{1}{r}{0,000} & 2,63 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 2,90 & 2,75 & 3,03 & \multicolumn{1}{r}{2,76} & 2,92 & 2,71 & 2,69 & 2,62 & 3,11 & 3,09 & 2,98 & 2,93 & 2,81 & 2,21 & 2,51 & & 0,27 & 0,12 & 0,40 & 0,13 & 0,29 & 0,08 & 0,06 & -0,01 & 0,48 & 0,46 & 0,35 & 0,30 & 0,18 & -0,42 & -0,12 & & 0,27 & 0,12 & 0,40 & 0,13 & 0,29 & 0,08 & 0,06 & 0,01 & 0,48 & 0,46 & 0,35 & 0,30 & 0,18 & 0,42 & 0,12 \\ + & $^1B_1$ & 1 & V & dou & 1,1 & \multicolumn{1}{r}{0,000} & 3,16 & NEVPT2/AVTZ & N & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,40 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,34 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_1$ & 1 & V & ppi & 89,2 & \multicolumn{1}{r}{0,378} & 4,96 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 5,01 & 5,01 & 5,02 & & 5,11 & 4,96 & 4,99 & 4,94 & 5,02 & 5,16 & 5,11 & 4,84 & 4,85 & 4,54 & 4,70 & & 0,05 & 0,05 & 0,06 & & 0,15 & 0,00 & 0,03 & -0,02 & 0,06 & 0,20 & 0,15 & -0,12 & -0,11 & -0,42 & -0,27 & & 0,05 & 0,05 & 0,06 & & 0,15 & 0,00 & 0,03 & 0,02 & 0,06 & 0,20 & 0,15 & 0,12 & 0,11 & 0,42 & 0,27 \\ + & $^1A_1$ & 1 & V & dou & 51,7 & \multicolumn{1}{r}{0,003} & 5,43 & NEVPT2/AVTZ & N & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,89 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,19 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^3A_2$ & 3 & V & npi & 97,0 & & 1,47 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 1,43 & 1,41 & 1,38 & \multicolumn{1}{r}{1,47} & 1,47 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 1,47 & 1,62 & 1,71 & 1,61 & 1,47 & 1,31 & 1,32 & 1,32 & & -0,04 & -0,06 & -0,09 & 0,00 & 0,00 & & & 0,00 & 0,15 & 0,24 & 0,14 & 0,00 & -0,16 & -0,15 & -0,16 & & 0,04 & 0,06 & 0,09 & 0,00 & 0,00 & & & 0,00 & 0,15 & 0,24 & 0,14 & 0,00 & 0,16 & 0,15 & 0,16 \\ + & $^3B_2$ & 3 & V & ppi & 97,1 & & 1,88 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 2,15 & 1,97 & 2,07 & \multicolumn{1}{r}{1,78} & 1,78 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 1,88 & 2,22 & 2,22 & 2,14 & 2,08 & 1,99 & 1,52 & 1,76 & & 0,27 & 0,09 & 0,19 & -0,10 & -0,10 & & & 0,00 & 0,34 & 0,34 & 0,26 & 0,20 & 0,11 & -0,36 & -0,13 & & 0,27 & 0,09 & 0,19 & 0,10 & 0,10 & & & 0,00 & 0,34 & 0,34 & 0,26 & 0,20 & 0,11 & 0,36 & 0,13 \\ + & $^3A_1$ & 3 & V & ppi & 98,1 & & 2,51 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 2,67 & 2,60 & 2,54 & \multicolumn{1}{r}{2,26} & 2,26 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,52 & 2,60 & 2,63 & 2,62 & 2,48 & 2,55 & 2,18 & 2,37 & & 0,16 & 0,09 & 0,03 & -0,25 & -0,25 & & & 0,01 & 0,09 & 0,12 & 0,11 & -0,03 & 0,04 & -0,33 & -0,15 & & 0,16 & 0,09 & 0,03 & 0,25 & 0,25 & & & 0,01 & 0,09 & 0,12 & 0,11 & 0,03 & 0,04 & 0,33 & 0,15 \\ + & $^3B_1$ & 3 & V & dou & 4,2 & & 3,13 & NEVPT2/AVTZ & N & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,39 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,35 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + Hexatriene & ^1B_u   & 1 & V & ppi & 92,2 & \multicolumn{1}{r}{1,115} & 5,37 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 5,31 & 5,21 & 5,41 & & 5,47 & 5,33 & 5,36 & 5,34 & 5,40 & 5,45 & 5,37 & 5,23 & 5,16 & 5,12 & 5,14 & & -0,06 & -0,16 & 0,04 & & 0,10 & -0,04 & -0,01 & -0,03 & 0,03 & 0,08 & 0,00 & -0,14 & -0,21 & -0,25 & -0,23 & & 0,06 & 0,16 & 0,04 & & 0,10 & 0,04 & 0,01 & 0,03 & 0,03 & 0,08 & 0,00 & 0,14 & 0,21 & 0,25 & 0,23 \\ + & $^1A_g$ & 1 & V & ppi & 65,3 & & 5,62 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & N & & 6,77 & 6,46 & 6,65 & & 6,57 & 6,14 & 5,91 & 5,75 & 6,84 & 6,82 & 6,70 & 6,68 & 6,53 & 4,66 & 5,60 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_u$   & 1 & R & p3s & 93,6 & \multicolumn{1}{r}{0,009} & 5,79 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 5,80 & 5,70 & 5,95 & \multicolumn{1}{r}{5,90} & 5,85 & 5,79 & 5,80 & 5,78 & 6,03 & 5,98 & 5,88 & 5,93 & 5,77 & 5,55 & 5,66 & & 0,01 & -0,09 & 0,16 & 0,11 & 0,06 & 0,00 & 0,01 & -0,01 & 0,24 & 0,19 & 0,09 & 0,14 & -0,02 & -0,24 & -0,13 & & 0,01 & 0,09 & 0,16 & 0,11 & 0,06 & 0,00 & 0,01 & 0,01 & 0,24 & 0,19 & 0,09 & 0,14 & 0,02 & 0,24 & 0,13 \\ + & $^1B_g$ & 1 & R & p3p & 93,5 & & 5,94 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 5,94 & 5,84 & 6,09 & \multicolumn{1}{r}{6,01} & 6,00 & 5,93 & 5,94 & 5,86 & 6,20 & 6,16 & 6,05 & 6,10 & 5,91 & 5,70 & 5,81 & & 0,00 & -0,10 & 0,15 & 0,07 & 0,06 & -0,01 & 0,00 & -0,08 & 0,26 & 0,22 & 0,11 & 0,16 & -0,03 & -0,24 & -0,14 & & 0,00 & 0,10 & 0,15 & 0,07 & 0,06 & 0,01 & 0,00 & 0,08 & 0,26 & 0,22 & 0,11 & 0,16 & 0,03 & 0,24 & 0,14 \\ + & $^1B_u$   & 3 & V & ppi & 97,9 & & 2,73 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 2,98 & 2,84 & 2,83 & \multicolumn{1}{r}{2,53} & 2,68 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,73 & 2,98 & 2,98 & 2,93 & 2,86 & 2,85 & 2,44 & 2,65 & & 0,25 & 0,11 & 0,10 & -0,20 & -0,05 & & & 0,00 & 0,25 & 0,25 & 0,20 & 0,13 & 0,12 & -0,29 & -0,08 & & 0,25 & 0,11 & 0,10 & 0,20 & 0,05 & & & 0,00 & 0,25 & 0,25 & 0,20 & 0,13 & 0,12 & 0,29 & 0,08 \\ + & $^1A_g$ & 3 & V & ppi & 98,3 & & 4,36 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,53 & 4,46 & 4,36 & \multicolumn{1}{r}{4,26} & 4,32 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,36 & 4,43 & 4,43 & 4,44 & 4,32 & 4,45 & 4,07 & 4,26 & & 0,17 & 0,10 & 0,00 & -0,10 & -0,04 & & & 0,00 & 0,07 & 0,07 & 0,08 & -0,04 & 0,09 & -0,29 & -0,10 & & 0,17 & 0,10 & 0,00 & 0,10 & 0,04 & & & 0,00 & 0,07 & 0,07 & 0,08 & 0,04 & 0,09 & 0,29 & 0,10 \\ + Maleimide & ^1B_1   & 1 & V & npi & 87,6 & \multicolumn{1}{r}{0,000} & 3,80 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 3,86 & 3,70 & 4,15 & \multicolumn{1}{r}{3,86} & 4,07 & 3,89 & 3,87 & 3,78 & 4,04 & 4,19 & 4,03 & 3,78 & 3,54 & 4,07 & 3,81 & & 0,06 & -0,10 & 0,35 & 0,06 & 0,27 & 0,09 & 0,07 & -0,02 & 0,24 & 0,39 & 0,23 & -0,02 & -0,26 & 0,27 & 0,01 & & 0,06 & 0,10 & 0,35 & 0,06 & 0,27 & 0,09 & 0,07 & 0,02 & 0,24 & 0,39 & 0,23 & 0,02 & 0,26 & 0,27 & 0,01 \\ + & $^1A_2$ & 1 & V & npi & 85,9 & & 4,52 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 4,66 & 4,52 & 4,87 & \multicolumn{1}{r}{4,59} & 4,82 & 4,64 & 4,60 & 4,51 & 4,74 & 4,92 & 4,80 & 4,49 & 4,33 & 4,76 & 4,55 & & 0,14 & 0,00 & 0,35 & 0,07 & 0,30 & 0,12 & 0,08 & -0,01 & 0,22 & 0,40 & 0,28 & -0,03 & -0,19 & 0,24 & 0,03 & & 0,14 & 0,00 & 0,35 & 0,07 & 0,30 & 0,12 & 0,08 & 0,01 & 0,22 & 0,40 & 0,28 & 0,03 & 0,19 & 0,24 & 0,03 \\ + & $^1B_2$   & 1 & V & ppi & 88,2 & \multicolumn{1}{r}{0,025} & 4,89 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 5,39 & 4,87 & 5,32 & \multicolumn{1}{r}{4,85} & 5,16 & 4,94 & 4,95 & 4,86 & 5,20 & 5,24 & 5,11 & 4,95 & 4,82 & 4,88 & 4,85 & & 0,50 & -0,02 & 0,43 & -0,04 & 0,27 & 0,05 & 0,06 & -0,03 & 0,31 & 0,35 & 0,22 & 0,06 & -0,07 & -0,01 & -0,04 & & 0,50 & 0,02 & 0,43 & 0,04 & 0,27 & 0,05 & 0,06 & 0,03 & 0,31 & 0,35 & 0,22 & 0,06 & 0,07 & 0,01 & 0,04 \\ + & $^1B_2$   & 1 & V & ppi & 89,1 & \multicolumn{1}{r}{0,373} & 6,21 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 5,74 & 6,22 & 6,53 & & 6,48 & 6,25 & 6,26 & 6,18 & 6,40 & 6,52 & 6,43 & 6,18 & 6,11 & 6,20 & 6,16 & & -0,47 & 0,01 & 0,32 & & 0,27 & 0,04 & 0,05 & -0,03 & 0,19 & 0,31 & 0,22 & -0,03 & -0,10 & -0,01 & -0,05 & & 0,47 & 0,01 & 0,32 & & 0,27 & 0,04 & 0,05 & 0,03 & 0,19 & 0,31 & 0,22 & 0,03 & 0,10 & 0,01 & 0,05 \\ + & $^1B_2$   & 1 & R & n3s & 89,1 & \multicolumn{1}{r}{0,034} & 7,20 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 6,65 & 6,71 & 7,58 & & 7,46 & 7,28 & 7,31 & 7,19 & 7,39 & 7,41 & 7,17 & 7,19 & 6,71 & 7,80 & 7,26 & & -0,55 & -0,49 & 0,38 & & 0,26 & 0,08 & 0,11 & -0,01 & 0,19 & 0,21 & -0,03 & -0,01 & -0,49 & 0,60 & 0,05 & & 0,55 & 0,49 & 0,38 & & 0,26 & 0,08 & 0,11 & 0,01 & 0,19 & 0,21 & 0,03 & 0,01 & 0,49 & 0,60 & 0,05 \\ + & $^3B_1$   & 3 & V & npi & 96,3 & & 3,57 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 3,67 & 3,45 & 3,87 & \multicolumn{1}{r}{3,53} & 3,78 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,56 & 3,85 & 3,99 & 3,81 & 3,61 & 3,31 & 3,46 & 3,39 & & 0,10 & -0,12 & 0,30 & -0,04 & 0,21 & & & -0,01 & 0,28 & 0,42 & 0,24 & 0,04 & -0,26 & -0,11 & -0,19 & & 0,10 & 0,12 & 0,30 & 0,04 & 0,21 & & & 0,01 & 0,28 & 0,42 & 0,24 & 0,04 & 0,26 & 0,11 & 0,19 \\ + & $^3B_2$  & 3 & V & ppi & 98,4 & & 3,74 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 3,98 & 3,85 & 3,88 & \multicolumn{1}{r}{3,40} & 3,71 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,73 & 3,92 & 3,93 & 3,90 & 3,80 & 3,85 & 3,79 & 3,82 & & 0,24 & 0,11 & 0,14 & -0,34 & -0,03 & & & -0,01 & 0,18 & 0,19 & 0,16 & 0,06 & 0,11 & 0,05 & 0,08 & & 0,24 & 0,11 & 0,14 & 0,34 & 0,03 & & & 0,01 & 0,18 & 0,19 & 0,16 & 0,06 & 0,11 & 0,05 & 0,08 \\ + & $^3B_2$  & 3 & V & ppi & 96,9 & & 4,24 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,67 & 4,32 & 4,58 & & 4,35 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,25 & 4,59 & 4,67 & 4,55 & 4,38 & 4,23 & 4,20 & 4,22 & & 0,43 & 0,08 & 0,34 & & 0,11 & & & 0,01 & 0,35 & 0,43 & 0,31 & 0,14 & -0,01 & -0,04 & -0,03 & & 0,43 & 0,08 & 0,34 & & 0,11 & & & 0,01 & 0,35 & 0,43 & 0,31 & 0,14 & 0,01 & 0,04 & 0,03 \\ + & $^3A_2$ & 3 & V & npi & 96,1 & & 4,32 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,44 & 4,27 & 4,58 & \multicolumn{1}{r}{4,26} & 4,51 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,31 & 4,55 & 4,71 & 4,57 & 4,32 & 4,08 & 4,50 & 4,29 & & 0,12 & -0,05 & 0,26 & -0,06 & 0,19 & & & -0,01 & 0,23 & 0,39 & 0,25 & 0,00 & -0,24 & 0,18 & -0,03 & & 0,12 & 0,05 & 0,26 & 0,06 & 0,19 & & & 0,01 & 0,23 & 0,39 & 0,25 & 0,00 & 0,24 & 0,18 & 0,03 \\ + Naphthalene & ^1B_{3u}   & 1 & V & ppi & 85,8 & & 4,27 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,49 & 4,45 & 4,82 & & 4,45 & 4,39 & 4,34 & 4,30 & 4,35 & 4,35 & 4,38 & 4,13 & 4,46 & 4,19 & 4,33 & & 0,22 & 0,18 & 0,55 & & 0,18 & 0,12 & 0,07 & 0,03 & 0,08 & 0,08 & 0,11 & -0,14 & 0,19 & -0,08 & 0,06 & & 0,22 & 0,18 & 0,55 & & 0,18 & 0,12 & 0,07 & 0,03 & 0,08 & 0,08 & 0,11 & 0,14 & 0,19 & 0,08 & 0,06 \\ + & $^1B_{2u}$   & 1 & V & ppi & 90,3 & & 4,90 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 5,15 & 4,82 & 5,30 & & 5,05 & 4,94 & 4,92 & 4,87 & 4,93 & 4,96 & 4,92 & 4,74 & 4,81 & 4,76 & 4,79 & & 0,25 & -0,08 & 0,40 & & 0,15 & 0,04 & 0,02 & -0,03 & 0,03 & 0,06 & 0,02 & -0,16 & -0,09 & -0,14 & -0,12 & & 0,25 & 0,08 & 0,40 & & 0,15 & 0,04 & 0,02 & 0,03 & 0,03 & 0,06 & 0,02 & 0,16 & 0,09 & 0,14 & 0,12 \\ + & $^1A_u$ & 1 & R & p3s & 92,7 & & 5,65 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 5,67 & 5,56 & 5,98 & & 5,70 & 5,67 & 5,66 & 5,63 & 5,81 & 5,75 & 5,69 & 5,69 & 5,62 & 5,49 & 5,56 & & 0,02 & -0,09 & 0,33 & & 0,05 & 0,02 & 0,01 & -0,02 & 0,16 & 0,10 & 0,04 & 0,04 & -0,03 & -0,16 & -0,10 & & 0,02 & 0,09 & 0,33 & & 0,05 & 0,02 & 0,01 & 0,02 & 0,16 & 0,10 & 0,04 & 0,04 & 0,03 & 0,16 & 0,10 \\ + & $^1B_{1g}$   & 1 & V & ppi & 84,7 & & 5,84 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 6,19 & 5,87 & 6,38 & & 6,11 & 5,98 & 5,93 & 5,83 & 6,11 & 6,10 & 6,02 & 5,93 & 5,90 & 5,80 & 5,85 & & 0,35 & 0,03 & 0,54 & & 0,27 & 0,14 & 0,09 & -0,01 & 0,27 & 0,26 & 0,18 & 0,09 & 0,06 & -0,04 & 0,01 & & 0,35 & 0,03 & 0,54 & & 0,27 & 0,14 & 0,09 & 0,01 & 0,27 & 0,26 & 0,18 & 0,09 & 0,06 & 0,04 & 0,01 \\ + & $^1A_g$ & 1 & V & ppi & \multicolumn{1}{l}{} & & 5,89 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & N & & 6,32 & 6,12 & 6,50 & & 6,17 & 6,05 & 6,01 & 5,94 & 6,03 & 6,02 & 6,05 & 5,81 & 6,13 & 5,63 & 5,88 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{3g}$   & 1 & R & p3p & \multicolumn{1}{l}{} & & 6,07 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 6,07 & 5,97 & 6,41 & & 6,14 & 6,08 & 6,06 & 6,04 & 6,23 & 6,18 & 6,11 & 6,11 & 6,03 & 5,92 & 5,98 & & 0,00 & -0,10 & 0,34 & & 0,07 & 0,01 & -0,01 & -0,03 & 0,16 & 0,11 & 0,04 & 0,04 & -0,04 & -0,15 & -0,10 & & 0,00 & 0,10 & 0,34 & & 0,07 & 0,01 & 0,01 & 0,03 & 0,16 & 0,11 & 0,04 & 0,04 & 0,04 & 0,15 & 0,10 \\ + & $^1B_{2g}$   & 1 & R & p3p & 92,5 & & 6,09 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 6,04 & 5,94 & 6,38 & & 6,10 & 6,11 & 6,09 & 6,07 & 6,31 & 6,15 & 6,08 & 6,10 & 6,00 & 5,89 & 5,95 & & -0,05 & -0,15 & 0,29 & & 0,01 & 0,02 & 0,00 & -0,02 & 0,22 & 0,06 & -0,01 & 0,01 & -0,09 & -0,20 & -0,15 & & 0,05 & 0,15 & 0,29 & & 0,01 & 0,02 & 0,00 & 0,02 & 0,22 & 0,06 & 0,01 & 0,01 & 0,09 & 0,20 & 0,15 \\ + & $^1B_{3u}$   & 1 & V & ppi & 90,6 & & 6,19 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & N & & 6,30 & 6,08 & 6,65 & & 6,36 & 6,19 & 6,22 & 6,15 & 6,26 & 6,27 & 6,21 & 6,07 & 6,07 & 6,09 & 6,08 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{1u}$   & 1 & R & p3s & 91,9 & & 6,33 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 6,42 & 6,27 & 6,72 & & 6,38 & 6,37 & 6,35 & 6,32 & 6,44 & 6,37 & 6,34 & 6,31 & 6,33 & 6,19 & 6,26 & & 0,09 & -0,06 & 0,39 & & 0,05 & 0,04 & 0,02 & -0,01 & 0,11 & 0,04 & 0,01 & -0,02 & 0,00 & -0,14 & -0,07 & & 0,09 & 0,06 & 0,39 & & 0,05 & 0,04 & 0,02 & 0,01 & 0,11 & 0,04 & 0,01 & 0,02 & 0,00 & 0,14 & 0,07 \\ + & $^1B_{2u}$   & 1 & V & ppi & 90,2 & & 6,42 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 6,30 & 6,40 & 6,90 & & 6,60 & 6,44 & 6,46 & 6,39 & 6,48 & 6,49 & 6,45 & 6,28 & 6,39 & 6,31 & 6,35 & & -0,12 & -0,02 & 0,48 & & 0,18 & 0,02 & 0,04 & -0,03 & 0,06 & 0,07 & 0,03 & -0,14 & -0,03 & -0,11 & -0,07 & & 0,12 & 0,02 & 0,48 & & 0,18 & 0,02 & 0,04 & 0,03 & 0,06 & 0,07 & 0,03 & 0,14 & 0,03 & 0,11 & 0,07 \\ + & $^1B_{1g}$   & 1 & V & ppi & 87,5 & & 6,48 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 7,06 & 6,50 & 7,05 & & 6,78 & 6,54 & 6,54 & 6,46 & 6,66 & 6,65 & 6,60 & 6,45 & 6,52 & 6,39 & 6,46 & & 0,58 & 0,02 & 0,57 & & 0,30 & 0,06 & 0,06 & -0,02 & 0,18 & 0,17 & 0,12 & -0,03 & 0,04 & -0,09 & -0,03 & & 0,58 & 0,02 & 0,57 & & 0,30 & 0,06 & 0,06 & 0,02 & 0,18 & 0,17 & 0,12 & 0,03 & 0,04 & 0,09 & 0,03 \\ + & $^1A_g & $1 & V & ppi & 71,5 & & 6,87 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 7,35 & 7,16 & 7,27 & & 7,41 & 7,30 & 7,09 & 6,87 & 7,34 & 7,30 & 7,26 & 7,13 & 7,20 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & 0,48 & 0,29 & 0,40 & & 0,54 & 0,43 & 0,22 & 0,00 & 0,47 & 0,43 & 0,39 & 0,26 & 0,33 & & & & 0,48 & 0,29 & 0,40 & & 0,54 & 0,43 & 0,22 & 0,00 & 0,47 & 0,43 & 0,39 & 0,26 & 0,33 & & \\ + & $^1B_{2u}$   & 3 & V & ppi & 97,7 & & 3,17 & CC3/AVTZ & N & & 3,54 & 3,32 & 3,47 & & 3,07 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,17 & 3,36 & 3,37 & 3,35 & 3,22 & 3,32 & 2,92 & 3,12 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{3u}$   & 3 & V & ppi & 96,6 & & 4,16 & CC3/AVTZ & N & & 4,45 & 4,34 & 4,48 & & 4,24 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,16 & 4,30 & 4,31 & 4,32 & 4,13 & 4,32 & 3,90 & 4,11 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{1g}$   & 3 & V & ppi & 97,8 & & 4,48 & CC3/AVTZ & N & & 4,75 & 4,64 & 4,73 & & 4,44 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,48 & 4,60 & 4,60 & 4,62 & 4,47 & 4,63 & 4,23 & 4,43 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{2u}$   & 3 & V & ppi & 96,8 & & 4,64 & CC3/AVTZ & N & & 4,88 & 4,86 & 5,08 & & 4,67 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,64 & 4,79 & 4,80 & 4,82 & 4,62 & 4,84 & 4,39 & 4,62 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{3u}$   & 3 & V & ppi & 97,5 & & 4,95 & CC3/AVTZ & N & & 5,08 & 4,98 & 5,22 & & 4,94 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 4,95 & 5,12 & 5,15 & 5,09 & 4,95 & 4,96 & 4,68 & 4,82 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_g$ & 3 & V & ppi & 97,3 & & 5,49 & CC3/AVTZ & N & & 5,79 & 5,71 & 5,78 & & 5,53 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,49 & 5,57 & 5,57 & 5,62 & 5,42 & 5,69 & 5,23 & 5,46 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1B_{1g}$   & 3 & V & ppi & 95,6 & & 6,17 & CC3/AVTZ & N & & 6,58 & 6,12 & 6,69 & & 6,40 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 6,17 & 6,45 & 6,44 & 6,33 & 6,27 & 6,15 & 6,15 & 6,15 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A_g$ & 3 & V & ppi & 95,2 & & 6,39 & CC3/AVTZ & N & & 6,66 & 6,57 & 6,83 & & 6,56 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 6,39 & 6,69 & 6,69 & 6,65 & 6,53 & 6,57 & 6,16 & 6,37 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + Nitroxyl (HNO) & ^1A''   & 1 & V & npi & 93,2 & \multicolumn{1}{r}{0,000} & 1,74 & exFCI/AVTZ & Y & & 1,80 & 1,74 & 1,74 & \multicolumn{1}{r}{1,56} & 1,76 & 1,74 & 1,75 & 1,75 & 1,88 & 1,93 & 1,87 & 1,68 & 1,68 & 1,50 & 1,59 & & 0,06 & 0,00 & 0,00 & -0,18 & 0,02 & 0,00 & 0,01 & 0,01 & 0,14 & 0,19 & 0,13 & -0,06 & -0,06 & -0,24 & -0,15 & & 0,06 & 0,00 & 0,00 & 0,18 & 0,02 & 0,00 & 0,01 & 0,01 & 0,14 & 0,19 & 0,13 & 0,06 & 0,06 & 0,24 & 0,15 \\ + & $^1A'$   & 1 & V & dou & 0,3 & \multicolumn{1}{r}{0,000} & 4,33 & exFCI/AVTZ & Y & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,51 & 5,26 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,55 & \multicolumn{1}{l}{} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ + & $^1A'$   & 1 & R & non-d & 92,4 & \multicolumn{1}{r}{0,038} & 6,27 & CCSDTQ/AVDZ + [CCSDT/AVTZ - CCSDT/AVDZ] & Y & & 5,81 & 5,72 & 6,33 & \multicolumn{1}{r}{6,26} & 6,30 & 6,25 & 6,29 & 6,26 & 6,27 & 6,25 & 6,07 & 6,09 & 5,73 & 6,42 & 6,08 & & -0,46 & -0,55 & 0,06 & -0,01 & 0,03 & -0,02 & 0,02 & -0,01 & 0,00 & -0,02 & -0,20 & -0,18 & -0,54 & 0,15 & -0,20 & & 0,46 & 0,55 & 0,06 & 0,01 & 0,03 & 0,02 & 0,02 & 0,01 & 0,00 & 0,02 & 0,20 & 0,18 & 0,54 & 0,15 & 0,20 \\ + & $^3A''$   & 3 & V & npi & 99,2 & & 0,88 & exFCI/AVTZ & Y & & 0,91 & 0,84 & 0,84 & \multicolumn{1}{r}{0,75} & 0,85 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 0,88 & 1,08 & 1,13 & 1,03 & 0,91 & 0,78 & 0,59 & 0,69 & & 0,03 & -0,04 & -0,04 & -0,13 & -0,03 & & & 0,00 & 0,20 & 0,25 & 0,15 & 0,03 & -0,10 & -0,29 & -0,20 & & 0,03 & 0,04 & 0,04 & 0,13 & 0,03 & & & 0,00 & 0,20 & 0,25 & 0,15 & 0,03 & 0,10 & 0,29 & 0,20 \\ + & $^3A'$   & 3 & V & ppi & 98,5 & & 5,61 & exFCI/AVTZ & Y & & 5,72 & 5,44 & 5,73 & \multicolumn{1}{r}{5,25} & 5,49 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 5,59 & 5,59 & 5,63 & 5,81 & 5,49 & 5,46 & 5,08 & 5,27 & & 0,11 & -0,17 & 0,12 & -0,36 & -0,12 & & & -0,02 & -0,02 & 0,02 & 0,20 & -0,12 & -0,15 & -0,53 & -0,34 & & 0,11 & 0,17 & 0,12 & 0,36 & 0,12 & & & 0,02 & 0,02 & 0,02 & 0,20 & 0,12 & 0,15 & 0,53 & 0,34 \\ + Streptocyanine-3 & ^1B_2   & 1 & V & ppi & 87,2 & \multicolumn{1}{r}{0,755} & 4,82 & exFCI/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 4,76 & 4,92 & 4,93 & \multicolumn{1}{r}{4,41} & 4,94 & 4,82 & 4,85 & 4,82 & 4,71 & 4,87 & 4,89 & 4,49 & 4,71 & 4,76 & 4,74 & & -0,06 & 0,10 & 0,11 & -0,41 & 0,12 & 0,00 & 0,03 & 0,00 & -0,11 & 0,05 & 0,07 & -0,33 & -0,11 & -0,06 & -0,09 & & 0,06 & 0,10 & 0,11 & 0,41 & 0,12 & 0,00 & 0,03 & 0,00 & 0,11 & 0,05 & 0,07 & 0,33 & 0,11 & 0,06 & 0,09 \\ + & $^3B_2$   & 3 & V & ppi & 98,0 & & 3,44 & exFCI/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 3,62 & 3,57 & 3,52 & \multicolumn{1}{r}{3,31} & 3,40 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 3,44 & 3,66 & 3,70 & 3,66 & 3,50 & 3,51 & 3,23 & 3,37 & & 0,18 & 0,13 & 0,08 & -0,13 & -0,04 & & & 0,00 & 0,22 & 0,26 & 0,22 & 0,06 & 0,07 & -0,21 & -0,07 & & 0,18 & 0,13 & 0,08 & 0,13 & 0,04 & & & 0,00 & 0,22 & 0,26 & 0,22 & 0,06 & 0,07 & 0,21 & 0,07 \\ + Streptocyanine-5 & ^1B_2   & 1 & V & ppi & 85,8 & \multicolumn{1}{r}{1,182} & 3,64 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 3,60 & 3,77 & 3,86 & & 3,79 & 3,68 & 3,69 & 3,66 & 3,56 & 3,71 & 3,73 & 3,33 & 3,54 & 3,54 & 3,54 & & -0,04 & 0,13 & 0,22 & & 0,15 & 0,04 & 0,05 & 0,02 & -0,08 & 0,07 & 0,09 & -0,31 & -0,10 & -0,10 & -0,10 & & 0,04 & 0,13 & 0,22 & & 0,15 & 0,04 & 0,05 & 0,02 & 0,08 & 0,07 & 0,09 & 0,31 & 0,10 & 0,10 & 0,10 \\ + & $^3B_2$   & 3 & V & ppi & 97,7 & & 2,47 & CCSDT/6-31+G(d) + [CC3/AVTZ - CC3/6-31+G(d)] & Y & & 2,68 & 2,60 & 2,65 & \multicolumn{1}{r}{2,32} & 2,45 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 2,48 & 2,73 & 2,76 & 2,71 & 2,56 & 2,54 & 2,25 & 2,40 & & 0,21 & 0,13 & 0,18 & -0,15 & -0,02 & & & 0,01 & 0,26 & 0,29 & 0,24 & 0,09 & 0,07 & -0,22 & -0,08 & & 0,21 & 0,13 & 0,18 & 0,15 & 0,02 & & & 0,01 & 0,26 & 0,29 & 0,24 & 0,09 & 0,07 & 0,22 & 0,08 \\ + Thioacrolein & ^1A''   & 1 & V & npi & 86,4 & \multicolumn{1}{r}{0,000} & 2,11 & CCSDT/AVTZ & Y & & 2,22 & 2,28 & 2,04 & \multicolumn{1}{r}{2,14} & 2,26 & 2,16 & 2,17 & 2,14 & 2,27 & 2,40 & 2,36 & 2,10 & 2,14 & 1,98 & 2,06 & & 0,11 & 0,17 & -0,07 & 0,03 & 0,15 & 0,05 & 0,06 & 0,03 & 0,16 & 0,29 & 0,25 & -0,01 & 0,03 & -0,13 & -0,05 & & 0,11 & 0,17 & 0,07 & 0,03 & 0,15 & 0,05 & 0,06 & 0,03 & 0,16 & 0,29 & 0,25 & 0,01 & 0,03 & 0,13 & 0,05 \\ + & $^3A''$   & 3 & V & npi & 96,9 & & 1,91 & CCSDT/AVDZ + [CC3/AVTZ - CC3/AVDZ] & Y & & 1,96 & 1,96 & 1,78 & \multicolumn{1}{r}{1,90} & 1,98 & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & 1,93 & 2,06 & 2,17 & 2,10 & 1,92 & 1,85 & 1,77 & 1,81 & & 0,05 & 0,05 & -0,13 & -0,01 & 0,07 & & & 0,02 & 0,15 & 0,26 & 0,19 & 0,01 & -0,06 & -0,14 & -0,10 & & 0,05 & 0,05 & 0,13 & 0,01 & 0,07 & & & 0,02 & 0,15 & 0,26 & 0,19 & 0,01 & 0,06 & 0,14 & 0,10 \\ + \end{tabular} + \ No newline at end of file diff --git a/tools/datafileBuilder.py b/tools/datafileBuilder.py index e1150d3c..6300a793 100755 --- a/tools/datafileBuilder.py +++ b/tools/datafileBuilder.py @@ -4,32 +4,37 @@ import re from enum import IntEnum,auto,unique import numpy as np from pathlib import Path -from lib import LaTeX -from lib.dfbOptions import dfbOptions -from lib.Format import Format +from lib import LaTeX,formats,dfbOptions +from lib.formats import getFormatHandlers from TexSoup import TexSoup,TexNode,TexCmd,TexEnv from lib.data import dataFileBase,DataType,state from collections import defaultdict import argparse parser = argparse.ArgumentParser() parser.add_argument('--file', type=argparse.FileType('r')) +parser.add_argument("--list","-l",action="store_true", help='List all available format') parser.add_argument('--debug', action='store_true', help='Debug mode') args = parser.parse_args() -lines=args.file.readlines() -soup=TexSoup(lines) -opt=soup.dfbOptions -if type(opt) is TexNode and type(opt.expr) is TexEnv: - texOps=dfbOptions.readFromEnv(opt) +if args.list: + print("The list of avalable formats are:") + for formatName,_ in getFormatHandlers(): + print(formatName) else: - texOps=dfbOptions() -commands=[LaTeX.newCommand(cmd) for cmd in soup.find_all("newcommand")] -dat=LaTeX.tabularToData(soup.tabular,commands) -scriptpath=Path(sys.argv[0]).resolve() -datapath=scriptpath.parents[1]/"static"/"data" -if args.debug: - datapath=datapath/"test" -if not datapath.exists(): - datapath.mkdir() -datalst=dataFileBase.readFromTable(dat,texOps,commands=commands) -for data in datalst: - data.toFile(datapath,texOps.suffix) \ No newline at end of file + lines=args.file.readlines() + soup=TexSoup(lines) + opt=soup.dfbOptions + if type(opt) is TexNode and type(opt.expr) is TexEnv: + texOps=dfbOptions.readFromEnv(opt) + else: + texOps=dfbOptions() + commands=[LaTeX.newCommand(cmd) for cmd in soup.find_all("newcommand")] + dat=LaTeX.tabularToData(soup.tabular,commands) + scriptpath=Path(sys.argv[0]).resolve() + datapath=scriptpath.parents[1]/"static"/"data" + if args.debug: + datapath=datapath/"test" + if not datapath.exists(): + datapath.mkdir() + datalst=dataFileBase.readFromTable(dat,texOps,commands=commands) + for data in datalst: + data.toFile(datapath,texOps.suffix) \ No newline at end of file diff --git a/tools/lib/Format.py b/tools/lib/Format.py deleted file mode 100644 index a47a94d7..00000000 --- a/tools/lib/Format.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import IntEnum,auto,unique -@unique -class Format(IntEnum): - LINE=auto() - COLUMN=auto() - DOUBLECOLUMN=auto() - EXOTICCOLUMN=auto() - TBE=auto() - DOUBLETBE=auto() \ No newline at end of file diff --git a/tools/lib/__init__.py b/tools/lib/__init__.py index e69de29b..648595e9 100644 --- a/tools/lib/__init__.py +++ b/tools/lib/__init__.py @@ -0,0 +1 @@ +from .dfbOptions import dfbOptions \ No newline at end of file diff --git a/tools/lib/data.py b/tools/lib/data.py index d32ea0c3..66d956cc 100644 --- a/tools/lib/data.py +++ b/tools/lib/data.py @@ -4,7 +4,7 @@ from .LaTeX import newCommand from .utils import getValFromCell,checkFloat from TexSoup import TexNode,TexEnv from enum import IntEnum,auto,unique,IntFlag -from .Format import Format +from .formats import getFormatHandlers import re import numpy as np import json @@ -25,6 +25,27 @@ class state: class DataType(IntEnum): ABS=auto() FLUO=auto() + +def datafileSelector(dataType): + switcher={ + DataType.ABS:AbsDataFile, + DataType.FLUO:FluoDataFile, + } + return switcher[dataType] + +def getSubtableIndex(table,firstindex=2,column=0,count=1): + subtablesindex=list() + i=firstindex+count + while i[-+]?\d+\.?\d*)\s*(?:\((?P\d+\.?\d*)\\\%\))?",strcell) - val,unsafe=getValFromCell(TexSoup(m.group("value"))) - T1=m.group("T1") - else: - m=re.match(r"^[-+]?\d+\.?\d*",strcell) - val,unsafe=getValFromCell(TexSoup(m.group(0))) - T1=None - if (mymolecule,mymethod.name,mymethod.basis) in datacls: - data=datacls[(mymolecule,mymethod.name,mymethod.basis)] - else: - data=AbsDataFile() - data.molecule=mymolecule - data.method=mymethod - datacls[(mymolecule,mymethod.name,mymethod.basis)]=data - infin=mytransdesc[0].split(r"\rightarrow") - for i,item in enumerate(infin): - m=re.match(r"^(?P\d)\\[,:;\s]\s*\^(?P\d)(?P\S*)",item.strip()) - infin[i]=state(m.group("number"),m.group("multiplicity"),m.group("sym")) - data.excitations.append(excitationValue(infin[0],infin[1],val,type=mytransdesc[1],isUnsafe=unsafe,T1=T1)) - for value in datacls.values(): - datalist.append(value) - return datalist - elif TexOps.format==Format.EXOTICCOLUMN: - import json - subtablesindex=getSubtableIndex(table) - for first, last in subtablesindex: - valDic=dict() - mymolecule=str(table[first,0]) - initialState=TexOps.initialStates[mymolecule] - for col in range(2,np.size(table,1)): - col=table[:,col] - basis=str(col[0]) - mymethcell=list(col[1]) - if isinstance(mymethcell[0],TexNode) and mymethcell[0].name=="$": - kindSoup=TexSoup("".join(list(mymethcell[0].expr.all))) - newCommand.runAll(kindSoup,commands) - kind=str(kindSoup) - methodnameSoup=TexSoup(mymethcell[1].value) - newCommand.runAll(methodnameSoup,commands) - methodname=str(methodnameSoup) - else: - kind="" - methtex=col[1] - newCommand.runAll(methtex,commands) - methodname=str(methtex) - mymethod=method(methodname,basis) - methkey=json.dumps(mymethod.__dict__) - finsts=dataFileBase.convertState(table[first:last+1,1],initialState,default=TexOps.default,commands=commands) - for index,cell in enumerate(col[first:last+1]): - if str(cell)!="": - val,unsafe=getValFromCell(cell) - finst=finsts[index] - dt=finst[1] - if dt in valDic: - dtDic=valDic[dt] - else: - dtDic=dict() - valDic[dt]=dtDic - if not methkey in dtDic: - dtDic[methkey]=dict() - dataDic=dtDic[methkey] - exkey=(json.dumps(finst[0].__dict__,),finst[2]) - if not exkey in dataDic: - dataDic[exkey]=dict() - if kind=='': - dataDic[exkey][kind]=(val,unsafe) - else: - dataDic[exkey][kind]=val - #data.excitations.append(excitationValue(initialState,finst[0],val,type=finst[2])) - for dt,methdic in valDic.items(): - for methstring,exdic in methdic.items(): - data=switcher[dt]() - data.molecule=mymolecule - methdic=json.loads(methstring) - data.method=method(methdic["name"],methdic["basis"]) - for exstr,values in exdic.items(): - stDict=json.loads(exstr[0]) - ty=exstr[1] - st=state(stDict["number"],stDict["multiplicity"],stDict["symetry"]) - T1=values["\\%T_1"] if "\\%T_1" in values else None - oF= values["f"] if "f" in values else None - val,unsafe=values[""] - data.excitations.append(excitationValue(initialState,st,val,type=ty,T1=T1,isUnsafe=unsafe,oscilatorForces=oF)) - datalist.append(data) - return datalist - elif TexOps.format==Format.TBE: - subtablesindex=getSubtableIndex(table) - for first, last in subtablesindex: - datacls=dict() - mymolecule=str(table[first,0]) - initialState=TexOps.initialStates[mymolecule] - mymethod=(method("TBE(FC)"),method("TBE")) - finsts=dataFileBase.convertState(table[first:last+1,1],initialState,default=TexOps.defaultType,commands=commands) - for index,row in enumerate(table[first:last+1,]): - oscilatorForces=checkFloat(str(row[2])) - T1 = checkFloat(str(row[3])) - val,unsafe = getValFromCell(row[4]) - corr,unsafecorr = getValFromCell(row[7]) - finst=finsts[index] - dt=finst[1] - if dt in datacls: - datamtbe = datacls[dt] - else: - cl=switcher[dt] - datamtbe=[] - for met in mymethod: - data=cl() - data.molecule=mymolecule - data.method=met - datamtbe.append(data) - datacls[dt]=datamtbe - vs=[val,corr] - uns=[unsafe,unsafecorr] - for i in range(2): - datamtbe[i].excitations.append(excitationValue(initialState,finst[0],vs[i],type=finst[2],T1=T1,oscilatorForces=oscilatorForces,isUnsafe=uns[i])) - for value in datacls.values(): - for dat in value: - datalist.append(dat) - return datalist - elif TexOps.format==Format.DOUBLETBE: - datacls=dict() - subtablesMol=getSubtableIndex(table) - for firstMol, lastMol in subtablesMol: - data=AbsDataFile() - data.molecule=str(table[firstMol,0]) - data.method=method("TBE","CBS") - for mytrans in table[firstMol:lastMol+1]: - try: - mathsoup=TexSoup(mytrans[1]) - except: - print(f"Error when parsing latex state: {str(mytransdesc[i])}") - exit(-1) - newCommand.runAll(mathsoup,commands) - mytransdesc=str(mathsoup) - infin=mytransdesc.split(r"\rightarrow") - for i,item in enumerate(infin): - m=re.match(r"^(?P\d)\\[,:;\s]\s*\^(?P\d)(?P\S*)",item.strip()) - infin[i]=state(m.group("number"),m.group("multiplicity"),m.group("sym")) - cell=mytrans[6] - val,unsafe=getValFromCell(cell) - data.excitations.append(excitationValue(infin[0],infin[1],val,isUnsafe=unsafe)) - datalist.append(data) - return datalist - + for formatName,Cls in getFormatHandlers: + if formatName.lower()==TexOps.format.lower(): + handler=Cls(TexOps,commands) + break + else: + raise ValueError() + return handler.readFromTable(table) def getMetadata(self): dic=OrderedDict() dic["Molecule"]=self.molecule diff --git a/tools/lib/dfbOptions.py b/tools/lib/dfbOptions.py index 43b4cf0a..6e3cc3ec 100644 --- a/tools/lib/dfbOptions.py +++ b/tools/lib/dfbOptions.py @@ -1,12 +1,12 @@ from TexSoup import TexSoup,TexCmd -from .Format import Format +from . import formats from .data import dataFileBase,DataType,state from collections import defaultdict class dfbOptions(object): def __init__(self): self.defaultType=DataType.ABS - self.format=Format.LINE + self.format="line" self.suffix=None self.initialStates=defaultdict(lambda : state(1,1,"A_1")) @@ -23,7 +23,7 @@ class dfbOptions(object): if dfbFormatNode!=None: dfbFormat=dfbFormatNode.expr if type(dfbFormat) is TexCmd: - dfb_Opt.format=Format[dfbFormat.args[0].value.upper()] + dfb_Opt.format=dfbFormat.args[0].value dfbSuffixNode=lateEnv.suffix if dfbSuffixNode!=None: diff --git a/tools/lib/formats/__init__.py b/tools/lib/formats/__init__.py new file mode 100644 index 00000000..0f086a8e --- /dev/null +++ b/tools/lib/formats/__init__.py @@ -0,0 +1,3 @@ +from .formatHandlerBase import formatHandlerBase +from .formatName import formatName +from .getFormatHandlers import getFormatHandlers \ No newline at end of file diff --git a/tools/lib/formats/default/TBEHandler.py b/tools/lib/formats/default/TBEHandler.py new file mode 100644 index 00000000..611f60c1 --- /dev/null +++ b/tools/lib/formats/default/TBEHandler.py @@ -0,0 +1,41 @@ +from ..formatHandlerBase import formatHandlerBase +from ..formatName import formatName +from ...data import dataFileBase,DataType,method,excitationValue,datafileSelector,getSubtableIndex +from ...utils import getValFromCell, checkFloat +@formatName("TBE") +class TBEHandler(formatHandlerBase): + def readFromTable(self,table): + datalist=list() + subtablesindex=getSubtableIndex(table) + for first, last in subtablesindex: + datacls=dict() + mymolecule=str(table[first,0]) + initialState=self.TexOps.initialStates[mymolecule] + mymethod=(method("TBE(FC)"),method("TBE")) + finsts=dataFileBase.convertState(table[first:last+1,1],initialState,default=TexOps.defaultType,commands=commands) + for index,row in enumerate(table[first:last+1,]): + oscilatorForces=checkFloat(str(row[2])) + T1 = checkFloat(str(row[3])) + val,unsafe = getValFromCell(row[4]) + corr,unsafecorr = getValFromCell(row[7]) + finst=finsts[index] + dt=finst[1] + if dt in datacls: + datamtbe = datacls[dt] + else: + cl=datafileSelector(dt) + datamtbe=[] + for met in mymethod: + data=cl() + data.molecule=mymolecule + data.method=met + datamtbe.append(data) + datacls[dt]=datamtbe + vs=[val,corr] + uns=[unsafe,unsafecorr] + for i in range(2): + datamtbe[i].excitations.append(excitationValue(initialState,finst[0],vs[i],type=finst[2],T1=T1,oscilatorForces=oscilatorForces,isUnsafe=uns[i])) + for value in datacls.values(): + for dat in value: + datalist.append(dat) + return datalist \ No newline at end of file diff --git a/tools/lib/formats/default/__init__.py b/tools/lib/formats/default/__init__.py new file mode 100644 index 00000000..a8ff9ea6 --- /dev/null +++ b/tools/lib/formats/default/__init__.py @@ -0,0 +1,6 @@ +from .lineHandler import lineHandler +from .columnHandler import columnHandler +from .doubleColumnHandler import doubleColumnHandler +from .TBEHandler import TBEHandler +from .doubleTBEHandler import doubleTBEHandler +from .exoticColumnHandler import exoticColumnHandler \ No newline at end of file diff --git a/tools/lib/formats/default/columnHandler.py b/tools/lib/formats/default/columnHandler.py new file mode 100644 index 00000000..5bbc87ed --- /dev/null +++ b/tools/lib/formats/default/columnHandler.py @@ -0,0 +1,34 @@ +from ..formatHandlerBase import formatHandlerBase +from ..formatName import formatName +from ...data import dataFileBase,DataType,method,excitationValue,datafileSelector,getSubtableIndex +from ...utils import getValFromCell +@formatName("column") +class columnHandler(formatHandlerBase): + def readFromTable(self,table): + datalist=list() + subtablesindex=getSubtableIndex(table) + for first, last in subtablesindex: + for col in range(2,np.size(table,1)): + datacls=dict() + col=table[:,col] + mymolecule=str(table[first,0]) + initialState=TexOps.initialStates[mymolecule] + mymethod=method(str(col[1]),str(col[0])) + finsts=dataFileBase.convertState(table[first:last+1,1],initialState,default=TexOps.defaultType,commands=commands) + for index,cell in enumerate(col[first:last+1]): + if str(cell)!="": + val,unsafe=getValFromCell(cell) + finst=finsts[index] + dt=finst[1] + if dt in datacls: + data=datacls[dt] + else: + cl=datafileSelector[dt] + data=cl() + data.molecule=mymolecule + data.method=mymethod + datacls[dt]=data + data.excitations.append(excitationValue(initialState,finst[0],val,type=finst[2])) + for value in datacls.values(): + datalist.append(value) + return datalist \ No newline at end of file diff --git a/tools/lib/formats/default/doubleColumnHandler.py b/tools/lib/formats/default/doubleColumnHandler.py new file mode 100644 index 00000000..6109aaf9 --- /dev/null +++ b/tools/lib/formats/default/doubleColumnHandler.py @@ -0,0 +1,63 @@ +from ..formatHandlerBase import formatHandlerBase +from ..formatName import formatName +from ...data import dataFileBase,DataType,method,excitationValue,datafileSelector,AbsDataFile,getSubtableIndex +from ...LaTeX import newCommand +import re +from ...utils import getValFromCell +@formatName("doubleColumn") +class doubleColumnHandler(formatHandlerBase): + def readFromTable(self,table): + datacls=dict() + subtablesMol=getSubtableIndex(table) + for firstMol, lastMol in subtablesMol: + mymolecule=str(table[firstMol,0]) + moltable=table[firstMol:lastMol+1,:] + subtablestrans=getSubtableIndex(moltable,firstindex=0,column=1,count=2) + for firstTrans,lastTrans in subtablestrans: + mytrans=moltable[firstTrans:lastTrans+1,:] + mytransdesc=mytrans[0:2,1] + for i in range(2): + try: + mathsoup=TexSoup(mytransdesc[i]) + except: + print(f"Error when parsing latex state: {str(mytransdesc[i])}") + exit(-1) + newCommand.runAll(mathsoup,commands) + mytransdesc[i]=str(mathsoup) + for colindex in range(3,np.size(table,1)): + col=mytrans[:,colindex] + mybasis=str(table[1,colindex]) + for index,cell in enumerate(col): + methodnameAT1=str(mytrans[index,2]) + PTString=r"($\%T_1$)" + HasT1=methodnameAT1.endswith(PTString) + if HasT1: + methodname=methodnameAT1[:-len(PTString)] + else: + methodname=str(methodnameAT1) + mymethod=method(methodname,mybasis) + strcell=str(cell) + if strcell!="": + if HasT1: + m=re.match(r"^(?P[-+]?\d+\.?\d*)\s*(?:\((?P\d+\.?\d*)\\\%\))?",strcell) + val,unsafe=getValFromCell(TexSoup(m.group("value"))) + T1=m.group("T1") + else: + m=re.match(r"^[-+]?\d+\.?\d*",strcell) + val,unsafe=getValFromCell(TexSoup(m.group(0))) + T1=None + if (mymolecule,mymethod.name,mymethod.basis) in datacls: + data=datacls[(mymolecule,mymethod.name,mymethod.basis)] + else: + data=AbsDataFile() + data.molecule=mymolecule + data.method=mymethod + datacls[(mymolecule,mymethod.name,mymethod.basis)]=data + infin=mytransdesc[0].split(r"\rightarrow") + for i,item in enumerate(infin): + m=re.match(r"^(?P\d)\\[,:;\s]\s*\^(?P\d)(?P\S*)",item.strip()) + infin[i]=state(m.group("number"),m.group("multiplicity"),m.group("sym")) + data.excitations.append(excitationValue(infin[0],infin[1],val,type=mytransdesc[1],isUnsafe=unsafe,T1=T1)) + for value in datacls.values(): + datalist.append(value) + return datalist \ No newline at end of file diff --git a/tools/lib/formats/default/doubleTBEHandler.py b/tools/lib/formats/default/doubleTBEHandler.py new file mode 100644 index 00000000..960b82f7 --- /dev/null +++ b/tools/lib/formats/default/doubleTBEHandler.py @@ -0,0 +1,33 @@ +from ..formatHandlerBase import formatHandlerBase +from ..formatName import formatName +from ...data import dataFileBase,DataType,method,excitationValue,datafileSelector,getSubtableIndex,AbsDataFile,state +from ...utils import getValFromCell, checkFloat +from ...LaTeX import newCommand +from TexSoup import TexSoup +import re +@formatName("doubleTBE") +class doubleTBEHandler(formatHandlerBase): + def readFromTable(self,table): + datalist=list() + subtablesMol=getSubtableIndex(table) + for firstMol, lastMol in subtablesMol: + data=AbsDataFile() + data.molecule=str(table[firstMol,0]) + data.method=method("TBE","CBS") + for mytrans in table[firstMol:lastMol+1]: + try: + mathsoup=TexSoup(mytrans[1]) + except: + print(f"Error when parsing latex state: {str(mytransdesc[i])}") + exit(-1) + newCommand.runAll(mathsoup,commands) + mytransdesc=str(mathsoup) + infin=mytransdesc.split(r"\rightarrow") + for i,item in enumerate(infin): + m=re.match(r"^(?P\d)\\[,:;\s]\s*\^(?P\d)(?P\S*)",item.strip()) + infin[i]=state(m.group("number"),m.group("multiplicity"),m.group("sym")) + cell=mytrans[6] + val,unsafe=getValFromCell(cell) + data.excitations.append(excitationValue(infin[0],infin[1],val,isUnsafe=unsafe)) + datalist.append(data) + return datalist \ No newline at end of file diff --git a/tools/lib/formats/default/exoticColumnHandler.py b/tools/lib/formats/default/exoticColumnHandler.py new file mode 100644 index 00000000..2a14e442 --- /dev/null +++ b/tools/lib/formats/default/exoticColumnHandler.py @@ -0,0 +1,72 @@ +from ..formatHandlerBase import formatHandlerBase +from ..formatName import formatName +from ...data import dataFileBase,DataType,method,excitationValue,datafileSelector,getSubtableIndex +from ...utils import getValFromCell +from TexSoup import TexSoup +from ...LaTeX import newCommand +import json +@formatName("exoticColumn") +class exoticColumnHandler(formatHandlerBase): + def readFromTable(self,table): + datalist=list() + subtablesindex=getSubtableIndex(table) + for first, last in subtablesindex: + valDic=dict() + mymolecule=str(table[first,0]) + initialState=TexOps.initialStates[mymolecule] + for col in range(2,np.size(table,1)): + col=table[:,col] + basis=str(col[0]) + mymethcell=list(col[1]) + if isinstance(mymethcell[0],TexNode) and mymethcell[0].name=="$": + kindSoup=TexSoup("".join(list(mymethcell[0].expr.all))) + newCommand.runAll(kindSoup,commands) + kind=str(kindSoup) + methodnameSoup=TexSoup(mymethcell[1].value) + newCommand.runAll(methodnameSoup,commands) + methodname=str(methodnameSoup) + else: + kind="" + methtex=col[1] + newCommand.runAll(methtex,commands) + methodname=str(methtex) + mymethod=method(methodname,basis) + methkey=json.dumps(mymethod.__dict__) + finsts=dataFileBase.convertState(table[first:last+1,1],initialState,default=TexOps.default,commands=commands) + for index,cell in enumerate(col[first:last+1]): + if str(cell)!="": + val,unsafe=getValFromCell(cell) + finst=finsts[index] + dt=finst[1] + if dt in valDic: + dtDic=valDic[dt] + else: + dtDic=dict() + valDic[dt]=dtDic + if not methkey in dtDic: + dtDic[methkey]=dict() + dataDic=dtDic[methkey] + exkey=(json.dumps(finst[0].__dict__,),finst[2]) + if not exkey in dataDic: + dataDic[exkey]=dict() + if kind=='': + dataDic[exkey][kind]=(val,unsafe) + else: + dataDic[exkey][kind]=val + #data.excitations.append(excitationValue(initialState,finst[0],val,type=finst[2])) + for dt,methdic in valDic.items(): + for methstring,exdic in methdic.items(): + data=switcher[dt]() + data.molecule=mymolecule + methdic=json.loads(methstring) + data.method=method(methdic["name"],methdic["basis"]) + for exstr,values in exdic.items(): + stDict=json.loads(exstr[0]) + ty=exstr[1] + st=state(stDict["number"],stDict["multiplicity"],stDict["symetry"]) + T1=values["\\%T_1"] if "\\%T_1" in values else None + oF= values["f"] if "f" in values else None + val,unsafe=values[""] + data.excitations.append(excitationValue(initialState,st,val,type=ty,T1=T1,isUnsafe=unsafe,oscilatorForces=oF)) + datalist.append(data) + return datalist \ No newline at end of file diff --git a/tools/lib/formats/default/lineHandler.py b/tools/lib/formats/default/lineHandler.py new file mode 100644 index 00000000..9f32248e --- /dev/null +++ b/tools/lib/formats/default/lineHandler.py @@ -0,0 +1,32 @@ +from ..formatHandlerBase import formatHandlerBase +from ..formatName import formatName +from ...data import dataFileBase,DataType,method,excitationValue,datafileSelector +from ...utils import getValFromCell +@formatName("line") +class lineHandler(formatHandlerBase): + def readFromTable(self,table): + datalist=list() + for col in range(1,np.size(table,1)): + col=table[:,col] + mymolecule=str(col[0]) + mymethod=method(str(col[2]),str(col[1])) + initialState=self.TexOps.initialStates[mymolecule] + finsts=dataFileBase.convertState(table[3:,0],initialState,default=TexOps.defaultType,commands=commands) + datacls=dict() + for index,cell in enumerate(col[3:]): + if str(cell)!="": + val,unsafe=getValFromCell(cell) + finst=finsts[index] + dt=finst[1] + if dt in datacls: + data=datacls[dt] + else: + cl=datafileSelector(dt) + data=cl() + datacls[dt]=data + data.molecule=mymolecule + data.method=mymethod + data.excitations.append(excitationValue(initialState,finst[0],val,type=finst[2],isUnsafe=unsafe)) + for value in datacls.values(): + datalist.append(value) + return datalist \ No newline at end of file diff --git a/tools/lib/formats/formatHandlerBase.py b/tools/lib/formats/formatHandlerBase.py new file mode 100644 index 00000000..7a2eb948 --- /dev/null +++ b/tools/lib/formats/formatHandlerBase.py @@ -0,0 +1,10 @@ +from abc import ABCMeta +from abc import abstractmethod +class formatHandlerBase(object): + __metaclass__ = ABCMeta + def __init__(self,TexOps, commands=[]): + self.TexOps=TexOps + self.commands=commands + @abstractmethod + def readFromTable(self,table): + raise NotImplementedError() \ No newline at end of file diff --git a/tools/lib/formats/formatName.py b/tools/lib/formats/formatName.py new file mode 100644 index 00000000..3c9f0636 --- /dev/null +++ b/tools/lib/formats/formatName.py @@ -0,0 +1,5 @@ +def formatName(name): + def formatWrapped(Cls): + Cls.__formatName__=name + return Cls + return formatWrapped \ No newline at end of file diff --git a/tools/lib/formats/getFormatHandlers.py b/tools/lib/formats/getFormatHandlers.py new file mode 100644 index 00000000..d87894a3 --- /dev/null +++ b/tools/lib/formats/getFormatHandlers.py @@ -0,0 +1,12 @@ +import inspect +import sys +from . import default +from . import formatHandlerBase + +def getFormatHandlers(includeUnnamed=False): + for clsName,Cls in inspect.getmembers(default,inspect.isclass): + if issubclass(Cls,formatHandlerBase): + if hasattr(Cls,"__formatName__"): + yield (Cls.__formatName__,Cls) + elif(includeUnnamed): + yield (None,Cls) \ No newline at end of file